/*!
//      
//      \file	k2k_X86IO.h
//      
//      \author	Copyright 2010 Valentina Vuksic <vuksv1@bfh.ch>, Beat Liechti <liecb2@bfh.ch>
//      
//      This program is free software; you can redistribute it and/or modify
//      it under the terms of the GNU General Public License as published by
//      the Free Software Foundation; either version 2 of the License, or
//      (at your option) any later version.
//      
//      This program is distributed in the hope that it will be useful,
//      but WITHOUT ANY WARRANTY; without even the implied warranty of
//      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//      GNU General Public License for more details.
//      
//      You should have received a copy of the GNU General Public License
//      along with this program; if not, write to the Free Software
//      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
//      MA 02110-1301, USA.
//
//		Abstract Data Type for IO with X86 system      
//      
//      \brief		CAS-EBX-03 Projektarbeit 
//      			Valentina Vuksic (VUKSV1), Beat Liechti (LIECB2)
//      			CarmeIO ADT for the k2k (Kaffee2000) application
//      \version	1.0
//      \date		2010-04-25
//      \remark		Last Modifications:
//      \remark  	v1.0, VUKSV1/LIECB2, 2010-04-25 Initial release
//
*/

#ifndef __k2k_X86IO__
#define __k2k_X86IO__

#include <stdlib.h>

#include "k2k_GlobalTypes.h"

#define	IO_BASE		0
#define	MAP_SIZE	0

/*!
// k2k_OrchidIO defines the data structure for the ADT 
// \brief k2k_OrchidIO stuct for ADT
*/				
typedef struct k2k_X86IO_Struct
{
	/*! dummy */
	UINT8 ledState;
} k2k_X86IO;

/*!
//
// Creates X86 IO ADT "object"
// 
// \return pointer to the X86 IO ADT
//
*/
k2k_X86IO* k2k_X86IO_Create();

/*!
//
// Releases X86 IO ADT "object"
// 
// \param x86IO is the pointer to the X86 IO structure
// 
// \return noting
//
*/
void k2k_X86IO_Release(k2k_X86IO *x86IO);

/*!
//
// Write LED pattern
// 
// \param x86IO is the pointer to the X86 IO structure
// \param pattern is the bitmap of the pattern for the LEDs
//
// \return nothing
//
*/
void k2k_X86IO_WriteLed(k2k_X86IO *x86IO, UINT8 pattern);

/*!
//
// Read LED pattern
// 
// \param x86IO is the pointer to the X86 IO structure
// \param pattern is the bitmap of the pattern for the LEDs
//
// \return bitmap of the status of the LEDs
//
*/
UINT8 k2k_X86IO_ReadLed(k2k_X86IO *x86IO);

/*!
//
// Reads a button
// 
// \param x86IO is the pointer to the X86 IO structure
//
// \return next button in buffer
//
*/
int k2k_X86IO_ReadButton(k2k_X86IO *x86IO);

#endif
